﻿using System.Collections.Generic;

namespace NHSE.Core
{
    public static class OutsideAcreList
    {
        public static string GetName(ushort acre) => Names.TryGetValue(acre, out var name) ? name : "???";

        public static readonly IReadOnlyDictionary<ushort, string> Names = new Dictionary<ushort, string>
        {
            {0x00, "Flat"}, // 00

            {0x10, "FldOutNShip00"}, // 16
            {0x14, "FldOutW00"}, // 20
            {0x15, "FldOutW01"}, // 21
            {0x16, "FldOutW02"}, // 22
            {0x17, "FldOutW03"}, // 23
            {0x1B, "FldOutWRiver00"}, // 27
            {0x1D, "FldOutE00"}, // 29
            {0x1E, "FldOutE01"}, // 30
            {0x1F, "FldOutE02"}, // 31
            {0x20, "FldOutE03"}, // 32
            {0x26, "FldOutSW00"}, // 38
            {0x27, "FldOutS00"}, // 39
            {0x28, "FldOutSRiver00"}, // 40
            {0x29, "FldOutSAirPortLeft00"}, // 41
            {0x2A, "FldOutSE00"}, // 42
            {0x2B, "FldOutSeaN00"}, // 43
            {0x2C, "FldOutSeaNW00"}, // 44
            {0x2D, "FldOutSeaNE00"}, // 45
            {0x2E, "FldOutSeaW00"}, // 46
            {0x30, "FldOutSeaE00"}, // 48
            {0x32, "FldOutSeaSW00"}, // 50
            {0x33, "FldOutSeaS00"}, // 51
            {0x34, "FldOutSeaSE00"}, // 52
            {0x3E, "FldOutE04"}, // 62
            {0x5B, "FldOutERiver00"}, // 91
            {0x5C, "FldOutSW01"}, // 92
            {0x5D, "FldOutSAirPortRight00"}, // 93
            {0x61, "FldOutS01"}, // 97
            {0x62, "FldOutSE01"}, // 98
            {0x63, "FldOutSE03"}, // 99
            {0x64, "FldOutSE02"}, // 100
            {0x65, "FldOutSW03"}, // 101
            {0x66, "FldOutSW02"}, // 102
            {0x67, "FldOutS03"}, // 103
            {0x68, "FldOutS02"}, // 104
            {0x69, "FldOutS04"}, // 105
            {0x6A, "FldOutNEStone00"}, // 106
            {0x6B, "FldOutNStone03"}, // 107
            {0x6C, "FldOutNStone02"}, // 108
            {0x6D, "FldOutNStone01"}, // 109
            {0x6E, "FldOutNStoneR00"}, // 110
            {0x6F, "FldOutNStoneL00"}, // 111
            {0x70, "FldOutNStone00"}, // 112
            {0x71, "FldOutNStone04"}, // 113
            {0x73, "FldOutEIslandDown01"}, // 115
            {0x74, "FldOutEIslandDown00"}, // 116
            {0x75, "FldOutEIslandUp00"}, // 117
            {0x76, "FldOutEIslandUp01"}, // 118
            {0x77, "FldOutWStone01"}, // 119
            {0x78, "FldOutWStone00"}, // 120
            {0x79, "FldOutEStone00"}, // 121
            {0x7A, "FldOutEStone01"}, // 122
            {0x7B, "FldOutNEStone01"}, // 123
            {0x7C, "FldOutNWStone01"}, // 124
            {0x7D, "FldOutNWStone00"}, // 125
            {0x7E, "FldOutWCliff00"}, // 126
            {0x7F, "FldOutW04"}, // 127
            {0x80, "FldOutNShip02"}, // 128
            {0x81, "FldOutNShip01"}, // 129
            {0x83, "FldOutWCliff01"}, // 131
            {0x84, "FldOutSRiver01"}, // 132
            {0x85, "FldOutWRiver01"}, // 133
            {0x86, "FldOutERiver01"}, // 134
            {0x87, "FldOutSWBridge01"}, // 135
            {0x88, "FldOutSWBridge00"}, // 136
            {0x89, "FldOutSEBridge01"}, // 137
            {0x8A, "FldOutSEBridge00"}, // 138
            {0x8B, "FldOutECliff01"}, // 139
            {0x8C, "FldOutECliff00"}, // 140
            {0x8D, "FldOutWIslandDown00"}, // 141
            {0x8E, "FldOutWIslandDown01"}, // 142
            {0x8F, "FldOutWIslandUp00"}, // 143
            {0x90, "FldOutWIslandUp01"}, // 144
            {0x91, "FldOutEStone02"}, // 145
            {0x92, "FldOutWStone02"}, // 146
            {0x93, "FldOutSeaN02"}, // 147
            {0x94, "FldOutSeaN01"}, // 148
            {0x97, "FldOutSeaW02"}, // 151
            {0x98, "FldOutSeaW01"}, // 152
            {0x9B, "FldOutSeaS02"}, // 155
            {0x9C, "FldOutSeaS01"}, // 156
            {0x9D, "FldOutSeaSW02"}, // 157
            {0x9E, "FldOutSeaSW01"}, // 158
            {0x9F, "FldOutSeaNW02"}, // 159
            {0xA0, "FldOutSeaNW01"}, // 160
            {0xA1, "FldOutSeaN05"}, // 161
            {0xA2, "FldOutSeaN04"}, // 162
            {0xA3, "FldOutSeaN03"}, // 163
            {0xA4, "FldOutSeaN08"}, // 164
            {0xA5, "FldOutSeaN07"}, // 165
            {0xA6, "FldOutSeaN06"}, // 166
            {0xAC, "FldOutSeaNW03"}, // 172
            {0xAD, "FldOutSeaW08"}, // 173
            {0xAE, "FldOutSeaW07"}, // 174
            {0xAF, "FldOutSeaW06"}, // 175
            {0xB0, "FldOutSeaW04"}, // 176
            {0xB1, "FldOutSeaW05"}, // 177
            {0xB2, "FldOutSeaW03"}, // 178
            {0xB8, "FldOutSeaSW03"}, // 184
            {0xBF, "FldOutSeaS05"}, // 191
            {0xC0, "FldOutSeaS04"}, // 192
            {0xC1, "FldOutSeaS03"}, // 193
            {0xC2, "FldOutSeaS08"}, // 194
            {0xC3, "FldOutSeaS07"}, // 195
            {0xC4, "FldOutSeaS06"}, // 196
            {0xC5, "FldOutSeaSE02"}, // 197
            {0xC6, "FldOutSeaSE01"}, // 198
            {0xC8, "FldOutSeaSE03"}, // 200
            {0xCD, "FldOutSeaE05"}, // 205
            {0xCE, "FldOutSeaE04"}, // 206
            {0xCF, "FldOutSeaE03"}, // 207
            {0xD0, "FldOutSeaE01"}, // 208
            {0xD1, "FldOutSeaE02"}, // 209
            {0xD2, "FldOutSeaE08"}, // 210
            {0xD3, "FldOutSeaE06"}, // 211
            {0xD4, "FldOutSeaE07"}, // 212
            {0xD8, "FldOutSeaNE03"}, // 216
            {0xDB, "FldOutSeaNE01"}, // 219
            {0xDC, "FldOutSeaNE02"}, // 220
            {0xDE, "FldOutSBridge00"}, // 222
            {0xDF, "FldOutWIslandDown02"}, // 223
            {0xE0, "FldOutWIslandUp02"}, // 224
            {0xE1, "FldOutEIslandDown02"}, // 225
            {0xE2, "FldOutEIslandUp02"}, // 226
            {0xE3, "FldOutECliff02"}, // 227
            {0xE4, "FldOutWCliff02"}, // 228
            {0xE5, "FldOutNEStone02"}, // 229
            {0xE6, "FldOutNWStone02"}, // 230
            {0xE7, "FldOutEStone03"}, // 231
            {0xE8, "FldOutWStone03"}, // 232
            {0xE9, "FldOutSRiver02"}, // 233
            {0xF0, "FldOutPhotoSBridge00"}, // 240
            {0xF1, "FldOutPhotoSE00"}, // 241
            {0xF2, "FldOutPhotoSW00"}, // 242
            {0xF3, "FldOutSBridge02"}, // 243
            {0xF4, "FldOutSBridge01"}, // 244
        };
    }
}
